Introduction à PyTorch : Pourquoi les tenseurs sont importants
PyTorch est un cadre open source très flexible et dynamique, apprécié pour la recherche en apprentissage profond et le prototypage rapide. Au cœur de ce système, le tenseur constitue la structure de données incontournable. Il s'agit d'un tableau multidimensionnel conçu pour traiter efficacement les opérations numériques nécessaires aux modèles d'apprentissage profond, en prenant en charge automatiquement l'accélération GPU automatically.
1. Comprendre la structure des tenseurs
Tout entrée, sortie et paramètre de modèle dans PyTorch est encapsulé dans un tenseur. Ils ont la même fonction que les tableaux NumPy, mais sont optimisés pour le traitement sur des matériels spécialisés comme les GPU, ce qui les rend bien plus efficaces pour les opérations d'algèbre linéaire à grande échelle requises par les réseaux neuronaux.
Les propriétés clés définissent le tenseur :
- Forme: Définit les dimensions des données, exprimées sous forme de tuple (par exemple, $4 \times 32 \times 32$ pour un lot d'images).
- Type: Spécifie le type numérique des éléments stockés (par exemple,
torch.float32pour les poids du modèle,torch.int64pour l'indexation). - Appareil: Indique l'emplacement matériel physique : généralement
'cpu'ou'cuda'(GPU NVIDIA).
requires_grad=True soit activée, permettant un calcul facile des gradients pendant la rétropropagation.
Exécutez le code pour inspecter les tenseurs actifs
Les dimensions internes doivent correspondre, donc $F$ doit être $(1, 10)$. Ensuite, $(1, 10) @ (10, 5) \rightarrow (1, 5)$.
Code :
F_new = F.unsqueeze(0) ou F_new = F.view(1, -1)L'opération est une multiplication matricielle simple.
Code :
output = F_new @ W ou output = torch.matmul(F_new, W)Utilisez la méthode
view ou reshape méthodes. La façon la plus rapide d'aplatir est souvent d'utiliser -1 pour une dimension.Code :
F_flat = F.view(-1) ou F_flat = F.reshape(50)